#!/usr/bin/python
# -*- coding: UTF-8 -*-

# @author zhangsheng
# @date 2019/8/6

# 小练习
# 对10以内的偶数的平方和。
s = 0
for i in range(10):
    if i % 2 == 0:
        s = s + i
print(s)

# 知识点1 定义函数=> 关键字 def 引入一个函数定义。


# 它必须后跟函数名称和带括号的参数列表。构成函数体的语句从下一行开始，并且必须缩进.


def concat_str(list_str):  # list_str 是参数，代表着传到函数里的内容
    info = ""
    for s in list_str:
        info = info + " " + s
    return info  # 这里是返回值，是函数执行的结果


# 定义函数的目的：1.封装功能，可以通用。2. 组织代码

li = ["i", "love", "you"]
msg = concat_str(li)
print(msg)

lt = ["you", "are", "sb"]
msg2 = concat_str(lt)
print(msg2)


# 知识点2 默认参数
# 可以给参数设置默认值，如果调用的地方，没有传这个参数，那么就取默认值
def get_item_by_index(items, index=1):  # 这里index是个参数，它有默认值是1
    return items[index]  # 取列表items中索引等于index的元素


itm = get_item_by_index(li)
print(itm)  # love

itm = get_item_by_index(li, 2)
print(itm)  # you

itm = get_item_by_index(li, 0)
print(itm)  # i


# 练习： 定义一个函数：参数是一个列表和一个数字（这个数字是默认是10），返回这个列表内，大于这个数的所有数字。

def get_max_num(items, sign=10):  # 参数：接收一个列表和一个数字，数字默认是10
    result = []  # 定义一个列表容器，用来存储结果（大于sign的数字）
    for it in items:  # 遍历这个列表
        if it > sign:  # 对每个做判断，是不是大于那个数字
            result.append(it)  # 大于就存起来
    return result  # 返回结果


mi = [2, 6, 3, 12, 4, 5]  # 任意一个列表
max_nums = get_max_num(mi, 5)
print(max_nums)  # [6, 12]
